SSM框架整合(5)—— MyBatis框架环境搭建

具体内容请点击阅读全文…

MyBatis框架

数据库表

1
2
3
4
5
6
7
8
9
10
11
CREATE DATABASE ssm;

USE ssm;

CREATE TABLE account(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(100),
money DOUBLE(4,2)
);

INSERT INTO account VALUES (NULL,'cat',9.16),(NULL,'dog',11.27);

结构目录

  • java
    • dao
      • AccountDao.java(持久层)
    • domain
      • Account.java(JavaBean对象)
    • test
      • TestMyBatis(测试类)
  • resources
    • SqlMapConfig.xml(数据库连接配置文件)

数据库连接配置文件

方式一

jdbcConfig.properties
1
2
3
4
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ee314
jdbc.username=root
jdbc.password=1234
SqlMapConfig.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

<!-- 加载 连接数据库的信息 -->
<properties resource="jdbcConfig.properties"></properties>
<!-- 配置 环境 -->
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="pooled">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>

<!-- 指定 映射文件位置 -->
<mappers>
<package name="cn.water.dao"/>
<!-- <mapper class="cn.water.dao.AccountDao"/> -->
</mappers>

</configuration>

方式二

SqlMapConfig.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

<!-- 配置 环境 -->
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///ssm"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>

<!-- 引入 映射配置文件 -->
<mappers>
<package name="cn.water.dao"/>
<!-- <mapper class="cn.water.dao.AccountDao"/> -->
</mappers>

</configuration>

持久层

  • 采用注解的方式

AccountDao

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package cn.water.dao;

import cn.water.domain.Account;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface AccountDao {

/** 查询所有用户 */
@Select("select * from account")
public abstract List<Account> findAll();

/** 添加用户 */
@Insert("insert into account (name,money) values (#{name},#{money})")
public abstract void add(Account account);


}

测试类

TestMyBatis

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package cn.water.test;

import cn.water.dao.AccountDao;
import cn.water.domain.Account;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;


public class TestMyBatis {

@Test
public void run01() throws Exception {
/* 加载 配置文件 */
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
/* 通过 建造者对象,获取 工厂对象 */
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
/* 通过 工厂对象,获取 Session对象 */
SqlSession sqlSession = sqlSessionFactory.openSession();
/* 通过 Session对象,获取 代理对象 */
AccountDao mapper = sqlSession.getMapper(AccountDao.class);
/* 调用 持久层 */
List<Account> all = mapper.findAll();
/* 遍历 */
for (Account account : all) {
System.out.println(account);
}
/* 释放资源 */
sqlSession.close();
inputStream.close();
}

}

运行结果

1
2
Account{id=1, name='cat', money=9.16}
Account{id=2, name='dog', money=11.27}
-------------本文结束-------------
Donate comment here